package com.zmn.oms.common.constant;

import com.google.common.collect.Lists;
import com.zmn.common.dictionary.DictModel;

import java.util.List;

/**
 * 类描述： 上门状态常量
 *
 * @author yule
 * @date 2021/3/11 16:20
 */
public class OrderVisitStatusConsts {

    /**
     * 上门状态
     */
    public final static int ORDER_VISIT_STATUS_APPLY = 10;  // 已提交
    public final static int ORDER_VISIT_STATUS_SET_OUT = 20;  // 已出发
    public final static int ORDER_VISIT_STATUS_VISIT = 30;  // 已上门
    public final static int ORDER_VISIT_STATUS_CANCEL = 40; // 已取消

    /**
     * 附件照片类型
     */
    public final static int ORDER_ATTACHMENT_TYPE = 50; //多次上门附件照片类型

    /**
     * 上门类型
     */
    public final static int ORDER_VISIT_TYPE_DELIVERY = 1; // 拉修
    public final static int ORDER_VISIT_TYPE_WAIT_PART = 2; // 待件
    public final static int ORDER_VISIT_TYPE_OTHER = 3; // 其他

    /**
     * 上门状态
     *
     * @return
     */
    public static List<DictModel> getOrderVisitStatusList() {
        List<DictModel> items = Lists.newArrayList();
        items.add(new DictModel(ORDER_VISIT_STATUS_APPLY, "已提交"));
        items.add(new DictModel(ORDER_VISIT_STATUS_SET_OUT, "已出发"));
        items.add(new DictModel(ORDER_VISIT_STATUS_VISIT, "已完成"));
        items.add(new DictModel(ORDER_VISIT_STATUS_CANCEL, "已取消"));
        return items;
    }

    /**
     * 多次上门原因
     *
     * @return
     */
    public static List<DictModel> getVisitTypeList() {
        List<DictModel> items = Lists.newArrayListWithExpectedSize(3);
        items.add(new DictModel(ORDER_VISIT_TYPE_DELIVERY, "拉修"));
        items.add(new DictModel(ORDER_VISIT_TYPE_WAIT_PART, "待件"));
        items.add(new DictModel(ORDER_VISIT_TYPE_OTHER, "其他"));
        return items;
    }

    /**
     * 多次上门状态名称
     *
     * @param VisitStatus 上门状态
     * @return 多次上门上门状态名称
     */
    public static String getVisitStatusName(Integer VisitStatus) {
        switch (VisitStatus) {
            case ORDER_VISIT_STATUS_APPLY:
                return "已提交";
            case ORDER_VISIT_STATUS_SET_OUT:
                return "已出发";
            case ORDER_VISIT_STATUS_VISIT:
                return "已上门";
            case ORDER_VISIT_STATUS_CANCEL:
                return "已取消";
            default:
                return "未知";
        }
    }

    /**
     * 查询多次上门原因名称
     *
     * @param type 多次上门类型
     * @return 多次上门类型名称
     */
    public static String getVisitTypeName(Integer type) {
        switch (type) {
            case ORDER_VISIT_TYPE_DELIVERY:
                return "拉修";
            case ORDER_VISIT_TYPE_WAIT_PART:
                return "待件";
            case ORDER_VISIT_TYPE_OTHER:
                return "其他";
            default:
                return "未知";
        }
    }

}